/**
 * @widoc $.fn.initSignPad
 * @namespace comp
 * @depends jquery.signaturepad.js
 * @des 初始化签名组件
 * @type function
 * @param opts
 * @param {boolean=} opts.bResizeListen 是否监听窗口变化，默认为 false
 * @param {object=} opts.jqClearbtn 若定义，将在此元素上绑定清空画布的事件
 * @return {object|undefined} obj
 * @rtn obj.fGetPngData {function} 获取签名的 png 图片数据
 */
$.fn.initSignPad = function(opts){
    var el = $(this), api;
    if(!$.fn.signaturePad) return;
    opts = $.extend({
        bResizeListen: false,// 是否监听窗口变化
        //jqClearbtn: $('xx')// 清空画布的按钮 jquery 对象
    }, opts);
    var signaturePad;
    var fInitSignaturePad = function(){
        var width = el.width();
        el.html('<div><canvas class="wi-signpad-canvas"' +
            ' width="' + width + '" height="' + Math.ceil(width * 3 / 4) + '"></canvas>' +
            '</div>');
        signaturePad = el.children('div').signaturePad({
            drawOnly: true,
            penWidth: Math.max(Math.ceil(width / 100), 1)
        });
    };
    // 获取 png 图片数据
    var fGetPngData = function(){
        return signaturePad.getSignatureImage().replace("data:image/png;base64,", "");
    };
    // 清空画布按钮点击事件
    var fClearsignClick = function(){
        signaturePad.clearCanvas();
    };
    var fInit = function(){
        var jqClearbtn = opts.jqClearbtn;
        el.addClass('wi-signpad');
        fInitSignaturePad();
        if(opts.bResizeListen){
            $.addResizeListener(function(){
                el.html('');
                setTimeout(fInitSignaturePad, 0);
            });
        }
        if(jqClearbtn && jqClearbtn.length){
            jqClearbtn.on('tap.clearsign', fClearsignClick);// 点击清空画布
        }
    };
    api = {
        fGetPngData: fGetPngData
    };
    fInit();
    return api;
};